The present invention relates to computer software utility programs in the field of computer aided design (CAD), computer aided manufacturing (CAM), computer aided engineering (CAE) and program data management (PDM II) software systems, and more particularly to part design and assembly applications in such systems.
In part design and assembly operations a part is often constructed by combining two or more bodies. For example, such bodies can be in the form of simple three-dimensional shapes such as cubes, spheres, cylinders, rectangular boxes or cones, or more complex shapes. Such bodies are defined, among other ways, by defining the outer shell of the body, which is composed of a number of xe2x80x9cfacesxe2x80x9d. Thus, for example, a body having the shape of a cube would have six faces, each of which is a square.
In existing CAD systems, parts are often assembled by combining two bodies so that the volumes of the two bodies intersect. This is shown, for example, in FIG. 1 where two rectangular boxes intersect. In part design it is often desirable to remove, or conversely, to keep certain portions of a body when that body is assembled with another body. For example, referring to FIG. 1, a designer may wish to remove a portion of the assembly, such as the portion labeled 10, while keeping the rest of the assembly. In a known CAD/CAM/CAE system sold by Dassault Systemes of Suresnes, France, under the name CATIA(copyright), this can be accomplished through an operation known as a TRIM operation.
The first step in the TRIM operation is the step of dividing the volumes of the two bodies into sets of new volumes, or cells. The cells fall into three groups: Group I, cells having volume originating solely from Body A; Group II, cells having volume originating solely from Body B; and Group III, cells having volume common to both bodies. This step is referred to as the xe2x80x9cCutBodiesxe2x80x9d operation. As shown in FIG. 1, the assembly of the two rectangular boxes as shown results in the creation of five xe2x80x9ccellsxe2x80x9d. Cells 12 and 13 originate exclusively from the first body, Body A. Cells 10 and 11 originate exclusively from the second body, Body B, and cell 14 originates from both Body A and Body B. As can be seen, the five cells each have a set of faces which define the cells.
The second step of the TRIM operation comprises keeping or removing cells so as to create a finished assembly meeting the user""s specification according to Boolean operations. Specifically, if the user specifies that the first body should be added to the second body, then all cells are merged. If the user specifies to keep the intersection between the two bodies, then only the cells belonging to both bodies are kept. If the user specifies that a cell from the first body should be removed from the assembly (xe2x80x9cremovexe2x80x9d operation), then that cell is removed. Conversely, if the user specifies that a cell from the first body should be kept (xe2x80x9ckeepxe2x80x9d operation), then the selected cell is kept, all other cells from the first body are removed, cells derived exclusively from the second body are kept, and all cells common to both bodies are kept. In practice, the user selects one of the faces of a cell to define which cell is to be kept or removed.
Such existing systems work well as long as the face selected by the user, which necessarily originates in a first body, does not extend on both sides of the other body, i.e., has not been divided or split by a face of the other body. More specifically, when two parts are assembled, it is often the case that the configuration of the assembly will result in the altering of one or more of the faces of each body. In this case, three kinds of faces are created: 1) faces which are left unchanged in the process (xe2x80x9cunchangedxe2x80x9d or xe2x80x9cnon-impactedxe2x80x9d faces), 2) faces which are divided into two or more portions (xe2x80x9csplitxe2x80x9d faces), and 3) faces which have the same background surface in the two original bodies. The latter category of faces are merged into one face, and are therefore called xe2x80x9csimplified facesxe2x80x9d. These three types of faces are shown of FIG. 2, where face 26 is an unchanged face, since it did not change from its configuration as face 20 of Body B. Faces 27 and 30 are split faces, since they are each a portion of face 22 of Body B. Faces 27 and 30 lie on opposite sides of Body A. Likewise, faces 28 and 31 are split faces, originating from face 23 of Body A. Face 32 is a simplified face, resulting from the combination of face 24 (Body A) and face 21 (Body B).
In the existing CATIA(copyright) system, a user may directly designate only unchanged faces for the application of a remove or keep operation. If the user selects a divided face to designate a cell for a remove or keep function, the operation will be performed on all the cells including a resulting split face. To avoid this, he must first add a feature, such as a hole, to the face. This is a time consuming process which adds unnecessary complexity to the design process, especially since the unnecessary feature (e.g., the hole) must be added prior to the assembly of the body parts, and therefore requires significant forethought which impedes the freedom of the design process. In many assemblies, unchanged faces are not accessible to the user, so the only faces which can practically be selected are split faces. In many cases it is simply more logical for the user to select a split face over an unchanged face. In addition, in many cases, there simply are no unchanged faces in the assembly, so the only faces which can be selected are split faces. Experience shows that at least half of all TRIM operations require the selection, of a split face, and therefore the addition of an unnecessary feature to the split face.
FIG. 3 illustrates the problem. FIG. 3A shows two intersecting bodies, a main one 50 which contains a thin wall 51, and a smaller one 52 which is intended, for example, to strengthen the thin wall. The user wishes to remove the portion 52a of the strengthening body which protrudes on the near side of the wall 51. With the known system, the user has no useful face to select, since all of the faces on the part 52a of the body that is to be removed are split faces. To reach the desired end result shown in FIG. 3C, the user must resort to a by-pass operation, shown in FIG. 3B, in which the user adds a small feature 53 to the geometry of the part of the body which he wishes to remove. In this way, the user is able to tag the particular portion of a body he wishes to remove or keep. This need to add an otherwise useless feature is resented by most designers as being an unnatural and cumbersome operation, and serves to limit the extensive use of the TRIM operation.
There is therefore a need for a system which allows a user to select a split face of a cell to keep or remove in the TRIM operation without the need for the addition of unnecessary parts.
Accordingly, the present invention provides a system, method and apparatus for allowing a user to perform a TRIM operation without imposing on the user the necessity of adding an otherwise unnecessary geometrical feature to the bodies involved in the operation.
According to an aspect of the invention, this is achieved by making use of another known feature of existing part design systems which consists of storing in the system, for each body, a log describing the history of the topology of the body.
According to an aspect of the invention, the TRIM operation begins with the CutBodies operation, as described above, which divides the two bodies A and B into cells. As stated, the division provides three categories of cells: (I) cells originating exclusively from A; (II) cells originating exclusively from B; and (III) cells that are common to A and B (FIG. 1). According to the invention, the next step consists of classifying all the faces in the assembly resulting from the union of the two bodies (xe2x80x9cthe A∪B operationxe2x80x9d) into three categories, according to a comparison of their situation after the CutBodies operation (the xe2x80x9cchildxe2x80x9d situation) with their previous situation (the xe2x80x9cparentxe2x80x9d situation). This comparison is made using the respective topology logs for their body of origin.
As explained herein, it will be understood that any face in the A∪B log has a parent face in either the topology log for Body A or the topology log for Body B, or in both. On the other hand, a parent face in the A log or the B log may have several children in the A∪B log. In the face classification process, the faces are categorized as described above, i.e., faces that are not impacted by the assembly operation, faces which are split during the operation and which therefore need to be delimited to allow the user to select the appropriate portions of them, and simplified faces.
The next step in the process according to the invention consists of determining whether the user has selected a xe2x80x9ckeepxe2x80x9d or a xe2x80x9cremovexe2x80x9d operation, and then performing the specified operation. A remove operation will first be described. If the selected face is a simplified face, the user is informed that the selection is in error since it would result in the removal of the entire assembly. If the selected face is a non-impacted face, the system identifies the body cell to which the face belongs and removes it. This was already achieved in the existing system referred to in the Background section. If, however, the selected face is a split face, the method according to the invention consists of using the information in the topology logs to find a cell defined by the selected face and a face having an unrelated parent (parent from a body different from the parent of the selected face). The cell is then removed.
A keep operation is very similar to a remove operation. In a keep operation, the same method is used to identify the selected cell. The group to which the selected cell belongs is noted, and all other cells in that group are removed. The selected cell, and cells from other groups, are kept. Thus, referring to FIG. 1, if cell 10 (Group II) is selected for keeping, cell 10 is kept but cell 11 (Group II) is removed. Cells 12 and 13 (Group I), and cell 14 (Group III) are kept.